<?php
namespace app\controller;
use \think\facade\Db;

// 数据库查询 //
// 没有查询到任何值则返回null
// Db::table()中table必须指定完整数据表，包括前缀

// 查出所有男的UID
// $subQuery = Db::name('two')->field('uid')->where('gender', '男')->buildSql(true);
// $result = Db::name('one')->where('id', 'exp', 'In' .$subQuery)->select();


// 大于某个时间
//Db::name('user')
//    ->whereTime('birthday', '>=', '1970-10-1')
//    ->select();
//   小于某个时间
//Db::name('user')
//    ->whereTime('birthday', '<', '2000-10-1')
//    ->select();
//   时间区间查询
//Db::name('user')
//    ->whereTime('birthday', 'between', ['1970-10-1', '2000-10-1'])
//    ->select();
//   不在某个时间区间
//Db::name('user')
//    ->whereTime('birthday', 'not between', ['1970-10-1', '2000-10-1'])
//    ->select();

// count()统计数量
// max() 求出查询数据的最大值，可以加false强制转换成数值
// min() 求出查询数据的最小值，可以加false强制转换成数值
// avg() 求出平均值
// sum() 求出总和

// fetchSql() 设置不执行SQL，返回SQL语句 默认true
// buildSql() 返回SQL语句,不需要额外执行select()
class DataSearch
{
    public function index()
    {
        // 查询一条数据，可以使用find方法，需指定where条件
        $data = Db::connect('mysql')->table('help_category')->where('help_category_id', '2')->find();

        // 查询一条SQL查询的原生语句
        // return Db::getLastSql();

        // findOrFail查询一条数据，查不到会抛出异常
        // $data = Db::connect('mysql')->table('help_category')->where('help_category_id', '2323')->findOrFail();

        // findOrFail查询一条数据，查不到会返回空数组
        // $data = Db::connect('mysql')->table('help_category')->where('help_category_id', '2323')->findOrEmpty();
        return json($data);
    }
    public function index2()
    {
        // select查询数据集
        // $data = Db::connect('mysql')->table('help_category')->select();

        // selectOrFail查询多列数据，查不到返回异常
        // $data = Db::connect('mysql')->table('help_category')->where('help_category_id', '3')->select();
        // return json($data);

        // toArray将对象转化为数组
        $data = Db::connect('mysql')->table('help_category')->where('help_category_id', '3')->select()->toArray();
        dump($data);
    }
    public function router($id) {
        return $id;
    }
}

// 链式查询数据集对象(Collection)和数组(Array)

// value() 获取指定字段的值
// colunm('表头', 'id') 指定列的值
// chunk(次数, 函数) 分批量获取数据
// cursor() 游标查询，每次读一行
// removeOption('操作') 清理掉保存的值
// order() 排序方法
